widget: Unparent widgets in dispose()
authorTimm Bäder <mail@baedert.org>
Fri, 18 Nov 2016 09:02:22 +0000 (10:02 +0100)
committerTimm Bäder <mail@baedert.org>
Sat, 7 Jan 2017 15:44:01 +0000 (16:44 +0100)
If they have a non-container parent.

gtk/gtkwidget.c

index e481a729bd2259fd6100d0a9754663e881edb650..1de5d2fa667855a5be9d05bd4ca2748cb442eadc 100644 (file)
@@ -10382,8 +10382,10 @@ gtk_widget_dispose (GObject *object)
   GtkWidgetPrivate *priv = widget->priv;
   GSList *sizegroups;
 
-  if (priv->parent)
+  if (priv->parent && GTK_IS_CONTAINER (priv->parent))
     gtk_container_remove (GTK_CONTAINER (priv->parent), widget);
+  else if (priv->parent)
+    gtk_widget_unparent (widget);
   else if (_gtk_widget_get_visible (widget))
     gtk_widget_hide (widget);